↳ Prolog
↳ PrologToPiTRSProof
average_in(X, s(s(s(Y))), s(Z)) → U2(X, Y, Z, average_in(s(X), Y, Z))
average_in(s(X), Y, Z) → U1(X, Y, Z, average_in(X, s(Y), Z))
average_in(0, s(s(0)), s(0)) → average_out(0, s(s(0)), s(0))
average_in(0, s(0), 0) → average_out(0, s(0), 0)
average_in(0, 0, 0) → average_out(0, 0, 0)
U1(X, Y, Z, average_out(X, s(Y), Z)) → average_out(s(X), Y, Z)
U2(X, Y, Z, average_out(s(X), Y, Z)) → average_out(X, s(s(s(Y))), s(Z))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
average_in(X, s(s(s(Y))), s(Z)) → U2(X, Y, Z, average_in(s(X), Y, Z))
average_in(s(X), Y, Z) → U1(X, Y, Z, average_in(X, s(Y), Z))
average_in(0, s(s(0)), s(0)) → average_out(0, s(s(0)), s(0))
average_in(0, s(0), 0) → average_out(0, s(0), 0)
average_in(0, 0, 0) → average_out(0, 0, 0)
U1(X, Y, Z, average_out(X, s(Y), Z)) → average_out(s(X), Y, Z)
U2(X, Y, Z, average_out(s(X), Y, Z)) → average_out(X, s(s(s(Y))), s(Z))
AVERAGE_IN(X, s(s(s(Y))), s(Z)) → U21(X, Y, Z, average_in(s(X), Y, Z))
AVERAGE_IN(X, s(s(s(Y))), s(Z)) → AVERAGE_IN(s(X), Y, Z)
AVERAGE_IN(s(X), Y, Z) → U11(X, Y, Z, average_in(X, s(Y), Z))
AVERAGE_IN(s(X), Y, Z) → AVERAGE_IN(X, s(Y), Z)
average_in(X, s(s(s(Y))), s(Z)) → U2(X, Y, Z, average_in(s(X), Y, Z))
average_in(s(X), Y, Z) → U1(X, Y, Z, average_in(X, s(Y), Z))
average_in(0, s(s(0)), s(0)) → average_out(0, s(s(0)), s(0))
average_in(0, s(0), 0) → average_out(0, s(0), 0)
average_in(0, 0, 0) → average_out(0, 0, 0)
U1(X, Y, Z, average_out(X, s(Y), Z)) → average_out(s(X), Y, Z)
U2(X, Y, Z, average_out(s(X), Y, Z)) → average_out(X, s(s(s(Y))), s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
AVERAGE_IN(X, s(s(s(Y))), s(Z)) → U21(X, Y, Z, average_in(s(X), Y, Z))
AVERAGE_IN(X, s(s(s(Y))), s(Z)) → AVERAGE_IN(s(X), Y, Z)
AVERAGE_IN(s(X), Y, Z) → U11(X, Y, Z, average_in(X, s(Y), Z))
AVERAGE_IN(s(X), Y, Z) → AVERAGE_IN(X, s(Y), Z)
average_in(X, s(s(s(Y))), s(Z)) → U2(X, Y, Z, average_in(s(X), Y, Z))
average_in(s(X), Y, Z) → U1(X, Y, Z, average_in(X, s(Y), Z))
average_in(0, s(s(0)), s(0)) → average_out(0, s(s(0)), s(0))
average_in(0, s(0), 0) → average_out(0, s(0), 0)
average_in(0, 0, 0) → average_out(0, 0, 0)
U1(X, Y, Z, average_out(X, s(Y), Z)) → average_out(s(X), Y, Z)
U2(X, Y, Z, average_out(s(X), Y, Z)) → average_out(X, s(s(s(Y))), s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
AVERAGE_IN(X, s(s(s(Y))), s(Z)) → AVERAGE_IN(s(X), Y, Z)
AVERAGE_IN(s(X), Y, Z) → AVERAGE_IN(X, s(Y), Z)
average_in(X, s(s(s(Y))), s(Z)) → U2(X, Y, Z, average_in(s(X), Y, Z))
average_in(s(X), Y, Z) → U1(X, Y, Z, average_in(X, s(Y), Z))
average_in(0, s(s(0)), s(0)) → average_out(0, s(s(0)), s(0))
average_in(0, s(0), 0) → average_out(0, s(0), 0)
average_in(0, 0, 0) → average_out(0, 0, 0)
U1(X, Y, Z, average_out(X, s(Y), Z)) → average_out(s(X), Y, Z)
U2(X, Y, Z, average_out(s(X), Y, Z)) → average_out(X, s(s(s(Y))), s(Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
AVERAGE_IN(X, s(s(s(Y))), s(Z)) → AVERAGE_IN(s(X), Y, Z)
AVERAGE_IN(s(X), Y, Z) → AVERAGE_IN(X, s(Y), Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
AVERAGE_IN(s(X), Y) → AVERAGE_IN(X, s(Y))
AVERAGE_IN(X, s(s(s(Y)))) → AVERAGE_IN(s(X), Y)
AVERAGE_IN(X, s(s(s(Y)))) → AVERAGE_IN(s(X), Y)
POL(AVERAGE_IN(x1, x2)) = 2·x1 + 2·x2
POL(s(x1)) = 1 + x1
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPSizeChangeProof
AVERAGE_IN(s(X), Y) → AVERAGE_IN(X, s(Y))
From the DPs we obtained the following set of size-change graphs: